import { defineStore } from "pinia";

const useUserStore = defineStore("tagsView", {
  state: () => ({
    tags: [],
    cacheTags: [],
  }),
  actions: {
    initTags(tags) {
      this.tags = tags;
    },

    addTag(item) {
      const { path } = item;
      const flag = this.tags.some((tag) => tag.path === path);
      if (flag) return;
      this.tags.push(item); // 添加完整的 item 对象
    },
    remove(index) {
      //   const tags = [...this.tags];
      this.tags.splice(index, 1);
      //   this.tasg = tags;
    },
    // 删除其他
    removeOther(index){
      if (isNaN(index)) return;
      // 删除数组：
      // 1.正向删除记得回退操作    
      // 2.倒着删除
      // this.tags.length不能存储到外面 每次循环之后数组长度发生变化
      for (let i = 0; i < this.tags.length; i++) {
        const item = this.tags[i];
        if (item.isAffix || index === i) {
          continue;
        }
          this.tags.splice(i,1);
          i--;
      }
    },
     // 删除所有,除过固定
     removeAll(){
      // 倒着删除
      for (let i = this.tags.length-1; i>=0 ; i--) {
        const item = this.tags[i];
        if (item.isAffix ) {
          return;
        }
          this.tags.splice(i,1);
      }
    }
    
  },
});
//写法二
export default useUserStore;